import { IPSModelObject } from '../ipsmodel-object';
import { IPSAppDEACMode } from '../app/dataentity/ipsapp-deacmode';
import { IPSAppDEDataSet } from '../app/dataentity/ipsapp-dedata-set';
import { IPSAppDataEntity } from '../app/dataentity/ipsapp-data-entity';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSEditorItem
 */
export interface IPSEditorItem extends IPSModelObject {
  /**
   * 应用实体自填模式对象
   *
   * @type {IPSAppDEACMode}
   */
  getPSAppDEACMode(): IPSAppDEACMode | null;

  /**
   * 应用实体自填模式对象
   *
   * @type {IPSAppDEACMode}
   */
  get psAppDEACMode(): IPSAppDEACMode | null;

  /**
   * 应用实体自填模式对象（必须存在）
   *
   * @type {IPSAppDEACMode}
   */
  getPSAppDEACModeMust(): IPSAppDEACMode;

  /**
   * 应用实体结果集对象
   *
   * @type {IPSAppDEDataSet}
   */
  getPSAppDEDataSet(): IPSAppDEDataSet | null;

  /**
   * 应用实体结果集对象
   *
   * @type {IPSAppDEDataSet}
   */
  get psAppDEDataSet(): IPSAppDEDataSet | null;

  /**
   * 应用实体结果集对象（必须存在）
   *
   * @type {IPSAppDEDataSet}
   */
  getPSAppDEDataSetMust(): IPSAppDEDataSet;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  get psAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象（必须存在）
   *
   * @type {IPSAppDataEntity}
   */
  getPSAppDataEntityMust(): IPSAppDataEntity;
}
